home *** CD-ROM | disk | FTP | other *** search
/ Publisher Platinum / Publisher Platinum.iso / clipart / utils / scedit11 / scedit.doc < prev    next >
Encoding:
Text File  |  1991-08-22  |  43.5 KB  |  959 lines

  1.  
  2.  
  3.     SCEDIT v1.1             7/25/91 George Christopher Thomas
  4.                                 Updated 8/19/91, for version 1.1
  5.  
  6.                Copyright (c) 1991, George Christopher Thomas
  7.                                 
  8.  
  9.  
  10.     ***** disclaimer *** disclaimer *** disclaimer *** disclaimer ******
  11.     *                                                                  *
  12.         * Some monitors are not capable of dealing with all of the modes   *
  13.         * that the driving display card is capable of.  This can result in *
  14.         * damage to the monitor.  SCEDIT does not attempt to prohibit       *
  15.         * any video modes.  Do not knowingly select a video mode that your *
  16.         * monitor can not deal with!                          *
  17.     *                                                                  *
  18.     ***** disclaimer *** disclaimer *** disclaimer *** disclaimer ******
  19.  
  20.  
  21.  
  22.     File Viewing and Screen Editing Utility
  23.         -----------------------------------------
  24.  
  25.     SCEDIT is a utility for the display and editing of images.  Currently
  26. it can show images in the GIF (Compuserve), TGA (Targa - TrueVision), 
  27. BMP (Windows 3),  and PCX (PC Paintbrush), and FLI (Autodesk Animator) 
  28. formats.  You control where to place the image on the screen and what kind 
  29. of color conversion to use.
  30.  
  31.         A true-color (16,24,32 bits/pixel) image will always be displayed
  32. using the Uniform Palette capability.  Color mapped images (1,4,8 bits/pixel) 
  33. can be displayed using either a Uniform Palette or the palette encoded with 
  34. the image.  FLI animations are always displayed as they are - no color 
  35. conversion can be performed.
  36.  
  37.  
  38.  
  39.         Required Environment
  40.         -----------------------------------------
  41.  
  42.     SCEDIT can use either the Vesa or Tiga environments.  It will try
  43. to use Vesa first, then Tiga.  If neither are found, it aborts.
  44.             1. Vesa  - tested with several Tseng ET4000 based VGAs.
  45.                        Supports Tseng HiColor 16bit color modes, if 
  46.                        available.  Since I determine a Tseng board by
  47.                searching for the Tseng copyright in the VGA bios,
  48.                it may have some problems with some Tseng based
  49.                boards.  Never tried with an ET3000 based VGA.
  50.  
  51.                Does not work with non Vesa modes - only Vesa 
  52.                        defined modes, 640x400 and above.  Standard VGA mode
  53.                        0x13 (320x200) and its variations are for the birds.        
  54.  
  55.                        Using Vesa, SCEDIT MUST BE RUN FROM THE VGA SCREEN.  
  56.                        It will not work when executed from the Monochrome 
  57.                        Adapter screen.
  58.  
  59.                7/15/91 - tested with more boards:
  60.                      Tseng ET4000 based (STB, Boca, Speedstar, Vermont
  61.               Microsystem's Design Master),  Video Seven
  62.                           VRAM II (1MB),  ATI VGA Wonder.
  63.  
  64.                         Note: VGAs with the HiColor DAC do NOT come up in
  65.                               a HiColor mode - you must explicitly select
  66.                               those modes from the mode submenu.
  67.  
  68.             2. Tiga - tested with Vermont Microsystem's boards, Hercules
  69.               Graphics Station,  TI 34020 SDB boards.  Supports
  70.               Hercules Graphics Station at 24-bits, and Vermont
  71.               Microsystem's Cobra Elite at 24-bits (somewhat of a 
  72.               hack to get Tiga to work with 24bit Elite).  Will not 
  73.               work correctly on a 4-bit/pixel Tiga board.
  74.  
  75.               Notes: 1) On stock Hercules Graphics Station card (with
  76.                              just the 1Mb VRAM), the 16-bit (32,768 color)
  77.                              modes and the 640x480x8x2 double buffered mode
  78.                  (the last mode listed) do not work.
  79.                  This is due to lack of memory for Tiga download
  80.                              primitives.  Note that the 512x480x24bit mode
  81.                              is also memory deficient - but more importantly
  82.                              the TI34010 GSP's graphics instructions can't 
  83.                  deal with more than 16 bits per pixel.  Therefore,
  84.                              the 512x480x24bit mode is done completely on the
  85.                  host.  It is conceivable that the 16-bit (32k color)
  86.                  and the 640x480x8x2 modes will work on versions
  87.                              of the Hercules card which have the DRAM
  88.                      populated - this is uncharted territory.
  89.                  So DO NOT SELECT THESE MODES UNDER TIGA!!!!
  90.  
  91.                      2) Under Tiga, SCEDIT prints out a bunch of 
  92.                              status messages to the DOS screen.  If run from
  93.                              the Monochome Adapter screen you will see these
  94.                              messages.  If run from the VGA screen, you will
  95.                              not see them.  This will be removed in later
  96.                              versions.
  97.  
  98.                              3) Since the FLI display is a download feature,
  99.                              some Tiga modes on some Tiga boards may not 
  100.                              have enough memory for the communications buffer
  101.                              the FLI code needs (64K).  In that case,  the FLI
  102.                              display is done completely on the host - much
  103.                              slower, but still works.
  104.  
  105.                         ---> 4) Under Tiga, SCEDIT will try to download the 
  106.                              RealTime fatbits and FLI extension, tigafbit.rlm.
  107.                              This file should either be in the current 
  108.                              directory, or in the directory specified in the 
  109.                              TIGA environment variable (in the -l<path> spot).
  110.  
  111.                   
  112.                   Support for Hercules Graphics Station at 16-bits/pixel
  113.                       is forthcoming.
  114.  
  115.     SCEDIT requires an expanded memory driver.  It will try to allocate
  116. 2MB, but will take whatever is available.  The 800x600x16bit or 
  117. 512x480x32bit modes will require about 550K to do the largest saveunder.
  118. If you use the save/restore screen functions, you will need much more memory.
  119. The 550K figure also is with the default fonts.  Under Tiga, if you load a 
  120. huge font (say above 30 pts), you will need much more memory.  EMS is used 
  121. only for saving/restoring under menus ("saveunders").  Lack of EMS will simply
  122. mean that menus are not restored.  SCEDIT is still quite usable - just use one
  123. part of the screen for menus and the rest for images.  The biggest hog of 
  124. EMS (besides the save/restore screen) is the "about" dialog box.  If you
  125. save a screen, then exit SCEDIT without restoring it,  SCEDIT may not 
  126. restore the EMS memory to the system.  
  127.  
  128.     It also requires a Microsoft or compatible mouse driver.
  129.  
  130.     SCEDIT needs most of the lower 640K of memory to function correctly.
  131. I use it with about 470K free (as CHKDSK reports).  I have had problems
  132. in machines with less memory.  SCEDIT will recognize network disks and 
  133. floppies.  I recommend not loading images off of floppies, as it is 
  134. deathly slow.
  135.  
  136.     SCEDIT runs on all 386/486 machines.  It should run on 286s, but I
  137. have never tried it.
  138.  
  139.     Under Tiga, SCEDIT will try to download the RealTime fatbits
  140. extension, tigafbit.rlm.  This file should either be in the current directory,
  141. or in the directory specified in the TIGA environment variable (in the
  142. -l<path> spot).  Under Tiga, SCEDIT will create a configuration file, 
  143. SCEDIT.CFG, in the directory where SCEDIT.EXE was executed from.  This 
  144. is to speed up the Tiga initialization.  It sometimes does strange things.
  145. This is due to an unfathomable bug in SCEDIT.  I am trying to nail this one.
  146. If you have lot of problems, run scedit with the -n switch:
  147.         SCEDIT -n
  148. This will force a rebuild of the configuration.    
  149.  
  150.     If SCEDIT really screws up, and your video is all screwed up, you can
  151. get back to DOS by clicking on the right mouse button, then hitting the 'q'
  152. (or 'Q') key.  This usually works, but may not if SCEDIT is really lost 
  153. (SCEDIT has been very stable, so this should be a rare, if not totally 
  154. unknown, event).
  155.     
  156.  
  157.     Philosophy
  158.         -----------------------------------------
  159.  
  160.     SCEDIT was originally written to address the need for a simple
  161. screen editing and file viewing facility.  As it evolved,  more emphasis
  162. has been place on file viewing.  As a result, the screen editing functions
  163. have atrophied - they are still there, but not nearly as functional as a
  164. real "paint" program.  I will probably not be enhancing these drawing 
  165. functions - unless there is a Great Public Outcry!
  166.  
  167.     The left mouse button is wired to control "actions", such as
  168. the drawing features.  The right mouse button is wired to control menus.
  169.  
  170.     Because of the disparity between the Vesa and Tiga environments, 
  171. there are several features which work only in particular environment.        
  172. These are enumerated in a later section.
  173.  
  174.  
  175.  
  176.         How to Use - File Viewing Tutorial
  177.         -----------------------------------------
  178.  
  179.         Type SCEDIT and hit return.  A cursor will appear.  Click on the
  180. right button to pop up a menu.  Menu entries with a little right arrow
  181. denote submenus - simply move cursor over the arrow to bring up the submenu.
  182. At anytime, moving the cursor outside of a menu will close that menu.
  183. The exception to this is the Load menu.  The load menu will not go away
  184. until OK or Cancel is pressed.  The load menu is not considered a submenu,
  185. and therefore the envoking menu does not have a right arrow next to the
  186. "Load" entry.
  187.  
  188.         Try clicking on the Load entry.  You will see the load menu pop-up.
  189. Note the field for the Drive, Directory, and Filename.  Note that wild
  190. cards are supported for the Filename.   If you click on one of these fields
  191. the arrow cursor will disappear and a text cursor will appear.  You can
  192. use the backspace key to delete characters.  Hitting the return or a mouse
  193. button when finished will update the file box, using the new information.
  194.  
  195.         Look at the file box.  You will see a list of files, one of which
  196. having a highlight bar.  Clicking on a highlight bar will:
  197.                 - if the bar is over a file, try to load that file,
  198.                 - if the bar is over a directory, switch to that directory,
  199.                 - if the bar is over a drive, switch to that drive.
  200.         Clicking on another file with move the highlight bar.  Clicking on
  201. an already highlighted file name is a short cut for clicking on OK.
  202.  
  203.         Beware switching to drive A or B - if your disk is out of the 
  204. drive, and DOS issues a "Abort, Retry, Ignore?" message, you will NOT SEE
  205. THAT MESSAGE because you are on the hi-res screen!
  206.  
  207.         You can also use the scroll bars to navigate through the file box.
  208.  
  209.         After clicking on a legal file (recognized format),  SCEDIT will close
  210. the load menu and display a box depicting the image's size.   You can 
  211. position the box anywhere, even clipped, on the screen.  Clicking the right
  212. button will cancel the image, clicking the left will start displaying it.
  213.  
  214.         There are a few other things - you can turn on/off the Uniform
  215. Palette, and if your board supports multiple modes you can
  216. switch back and forth between them, etc.
  217.  
  218.         Just try it.
  219.  
  220.  
  221.  
  222.         How to Use - Other Features Tutorial
  223.         -----------------------------------------
  224.     
  225.     Here is an enumeration of the various menus.  If an arrow is 
  226. after a menu entry, that entry has a submenu.   If an * is before a 
  227. menu entry, that entry is merely a toggling switch.  The main menu is popped 
  228. up with the right mouse button.
  229.  
  230.     Notes: after loading an image using the uniform palette capability,
  231.         you must explicitly load the uniform palette (using the 
  232.         palette submenu) - except for Targa files, which always
  233.                 force a uniform palette load.
  234.  
  235.     main menu:
  236.         draw  ->        drawing functions, assigned to left button
  237.         state ->    state changes - colors, rops, clipping, etc
  238.         mark  ->     area mark stuff - boxes, polys
  239.         edit  ->    regular fatbits, palette editing, RealTime
  240.                                 fatbits
  241.         load        file loading submenu
  242.         save        file saving submenu
  243.         about        a little message
  244.         quit        exit back to DOS
  245.  
  246.  
  247.     draw:  - these are assigned to the left mouse button.  Once 
  248.          selected they stay attached to left mouse button until
  249.          another is selected.  Subject to current color, fill flag,
  250.          ROP, clipping (all set from states submenu):
  251.  
  252.         line        draws vectors.  click on left to anchor
  253.                 first point, click on left to anchor and
  254.                 draw each line.  click on right to stop.
  255.         cline        same as line, but connects first point
  256.                 with last, when right button is pressed.
  257.         sketch        click on left button, move mouse to draw
  258.                 points, click either button to stop.
  259.         area        move cursor to desired point, click on left
  260.                 button to seed fill from there.  Tiga only.
  261.         circle        move cursor to desired center point, click
  262.                 on left button, move mouse to move circle,
  263.                 click on left to accept, right to abort.
  264.                 Tiga only.
  265.         ellipse        move cursor to desired center point, click
  266.                 on left button, move mouse to move circle,
  267.                 click on left to accept, right to abort.
  268.                 Tiga only.
  269.         rect        move cursor to desired point, click on left
  270.                 to start, drag rubber rect to desired point,
  271.                 click on left to accept, right to abort.
  272.         flood        move cursor to desired point, click on left
  273.                 to flood screen
  274.         point        move cursor to desired point, click on left
  275.                 to draw a point.
  276.         blkmov        must have previously marked an area using the
  277.                 mark submenu.  click on left button, move
  278.                 box to desired location, click on left to
  279.                 accept, right to abort.  copy box from marked
  280.                 area to destination area.
  281.                 text            click on left button to bring up a text entry
  282.                                 box, with the last text string entered displayed.
  283.                                 At this point the regular cursor will have 
  284.                                 disappeared and a text cursor (underscore)
  285.                                 will appear.  At this point if you hit a key
  286.                                 the previous text string will disappear, or if
  287.                                 you hit the backspace key the previous text
  288.                                 string will be edited.  The only editing
  289.                                 allowed is the backspace key.  Hit a return
  290.                                 or mouse button to accept the text.
  291.                                 DO NOT ENTER MORE THAN 80 CHARACTERS!
  292.                                 After selecting the text, a box, the size of
  293.                                 the text string, will be displayed.  You can
  294.                                 position the box anywhere you like.  Click 
  295.                                 the left button to draw the text, right button
  296.                                 to abort.
  297.                                 Draws the text in the current font, transparent
  298.                                 only.
  299.         zoom        must have previously marked an area using the
  300.                 mark submenu.  click on left button, stretch
  301.                 box to desired location, click on left to
  302.                 accept, right to abort.  Will do a "stretch
  303.                 blit" from marked area to destination area.
  304.                 Tiga only.
  305.         zoomout        must have previously marked an area using the
  306.                 mark submenu.  click on left button, stretch
  307.                 box to desired location, click on left to
  308.                 accept, right to abort.  Will do a "stretch
  309.                 blit" from marked area to destination area.
  310.                 Variation of zoom. Tiga only.
  311.         poly        don't work.
  312.         copy poly    must have previously marked a poly using the
  313.                 mark submenu.  click on left button, position
  314.                 poly's bounding box to desired location,
  315.                 click on left to accept, right to abort. Will
  316.                 copy poly from marked area to destination area.
  317.         rgb mesh    this is a complicated one.  basically, you
  318.                 move the cursor to a desired vertex, click
  319.                 on left, select the RGB color you want, click
  320.                 on right to confirm RGB color.  Keep moving
  321.                     and selecting new vertices (with RGB colors).
  322.                 Keeps a "running" triangle mesh.  Click on
  323.                 right to stop.
  324.                 flip box        draws a box, the same as for rectangles.  The
  325.                                 box contents are then flipped upside down.
  326.                 reverse box     draws a box, the same as for rectangles.  The
  327.                                 box contents are then reversed left to right.
  328.                 brightness      draws a box, the same as for rectangles.  
  329.                                 Then you can use the '-','+' keys to adjust 
  330.                                 the brightness of the enclosed pixels.  '1'-
  331.                                 '9' sets the magnitude of change.  By default
  332.                                 all red green and blue are changed.  If you hit
  333.                                 the 'r', 'g', or 'b' keys only the corresponding
  334.                                 color will be subsequently altered.  Hit the
  335.                                 'a' key to alter all red, green, and blue.
  336.                                 Hit any other key or a mouse button to exit.
  337.                                 ONLY FOR TRUECOLOR (16,24 BIT) MODES!
  338.  
  339.     states:  - these are for setting the drawing states - colors, ROPs,
  340.            clipping,  palettes, video modes, fill flag, color 
  341.            conversion:
  342.  
  343.         color        brings up a 16x16 grid of all 256 colors.
  344.                 the current color has a X over it.  If you
  345.                 click on left button inside of the color
  346.                 grid, the color you were over becomes the
  347.                 new drawing color.  if you click outside the
  348.                 color grid, the current color remains
  349.                 unchanged.
  350.         rop ->        bring up the rop submenu.  these are all the 
  351.                 Tiga Rops.  Vesa supports only 
  352.                     s
  353.                     s NOT d
  354.                     s XOR d
  355.                 at the moment.  selecting others under
  356.                 Vesa will result in strange things.
  357.                 Under Tiga, Rops apply to most everything-
  358.                 all of the drawing stuff, including blkmovs,
  359.                 but not RGB mesh.
  360.         fill ->        brings up fill submenu.  for setting the fill
  361.                 flag.  affects drawing stuff - rects, circle,
  362.                 ellipse, poly (when implemented).  Defaults to
  363.                                 unfilled.
  364.         palette ->    palette selection submenu.
  365.         modes ->    all available video modes.  just pick the
  366.                 one you want and away you go.
  367.         clipping ->    clipping submenu.
  368.         * Uniform Palette    if on, all images are loaded into
  369.                 a uniform palette.  Not all that great for
  370.                 24-bit images, but fine for previewing.
  371.                 if off, all images are loading using their
  372.                 "native" palettes.  Exception: 16,24,32 bit
  373.                 "true color" images ignore this flag and
  374.                 are always loaded using the uniform palette.
  375.         * transparency  does not draw pixels of color 0.  used
  376.                 to "overlay" images with black areas over
  377.                 previous images.  Not implemented yet.
  378.         pick color     move cursor to pixel whose color you want
  379.                 to be the current drawing color, then click
  380.                 left button.  Not implemented yet.
  381.         nearest color    brings up the palette editing menu.  pick
  382.                 the RGB values you want for the current 
  383.                 drawing color,  will set the current drawing
  384.                 color to the nearest available color in the
  385.                 palette.
  386.         * verbose    if on, gives information about files being
  387.                 viewing, etc.  For my debugging purposes,
  388.                 as it either prints to the monochrome
  389.                 adaptor screen, or in Vesa, prints right
  390.                 onto the graphics screen, screwing everything
  391.                 up.  I will eventually have this work with
  392.                 nice graphical text boxes.  But, stay away
  393.                 for the moment.
  394.                 * single step   if on, FLI,FLC,&CEL displays pause after each 
  395.                 frame until a key or mouse button is pressed.
  396.                                 Additionally, the current frame number is 
  397.                 printed on the top left corner of the screen.
  398.                 When the animation is done the total number of
  399.                 frames is displayed.  
  400.                                 if on, VOC playbacks pause after each block
  401.                                 until a key or mouse button is pressed.  
  402.                                 Additionally, the VOC block number is printed
  403.                                 on the top left corner of the screen. 
  404.                                 Good for figuring out frame/block numbers for
  405.                                 constructing MMF files. 
  406.  
  407.  
  408.     palette:  - for setting current display palette, saving/restoring
  409.            palettes, and palette cycling.
  410.  
  411.         * uniform    palette used for uniform color conversion.
  412.         * cone distribution    palette with lots of colors/shades.
  413.                 good for drawing stuff.
  414.         * grey scale    an approximation to a real grey scale.
  415.                 Fun to load an image using the uniform
  416.                 palette capability, then selecting this
  417.                 palette for a cool grey scale image.
  418.         * acad 16    why?
  419.         * acad 256         - because we can.
  420.         * last image's palette    loads the palette which the 
  421.                 previous image had.  has bugs.
  422.         push        push current palette onto a stack
  423.         pop        pop palette from stack and make current.
  424.         cycle        cycles the current palette.  Use -,+ to
  425.                 control direction, 0-9 for speed, space bar
  426.                 to pause (until another key press).  Use
  427.                 left mouse button to stop at current cycle,
  428.                 right mouse button to stop and restore to
  429.                 original, uncycled, palette.
  430.  
  431.  
  432.     clipping:  - for setting the clipping window.
  433.             respected by file loads and drawing stuff.
  434.  
  435.         set to box    much like the rectangle draw.  allows you    
  436.                 to select the position and size of the 
  437.                 clipping window.
  438.         set to full screen    resets clipping window
  439.         edit box    allows you to edit size/position of window.
  440.                 described below.
  441.  
  442.  
  443.     mark:  - for marking areas of the image for later manipulation.
  444.  
  445.         box        much like rectangle draw.  allows you to
  446.                 select the position and size of the mark
  447.                 box
  448.         edit box    allows you to edit size/position of window.
  449.                 described below.
  450.         line poly    mark an area bounded by line segments
  451.         sketch poly    mark an area bounded by an arbitrary polygon.
  452.                 has some bugs.
  453.         push box    push the image in the box onto a stack
  454.         pop box        pop an image from the stack, allowing you
  455.                 to place box anywhere.
  456.         push poly       similar to push/pop box, but operates on the
  457.         pop poly       polygon mark.  Not implemented yet.
  458.         save screen    saves entire screen to EMS.
  459.         restore screen    restore entire screen from EMS.
  460.  
  461.  
  462.  
  463.     edit:  - for editing areas of the image, and for editing the 
  464.          current color's RGB.
  465.  
  466.         edit fatbits    brings up the fatbits box. Works by capturing
  467.                 what is under the cursor when the left button
  468.                 is pressed, and blowing it up in the fatbits
  469.                 box.  You can then move the cursor into the
  470.                 fatbits box and draw individual pixels using
  471.                 the current color and rop.  click on right
  472.                 button to stop.
  473.         edit palette    brings up the palette box.  adjust the 
  474.                 current color's RGB using the RGB and HSV
  475.                 sliders (using left button).  click on right
  476.                 within the box to select the changed color, 
  477.                 outside    the box to abort any changes.
  478.         set fatbits size ->        brings up size submenu.  You
  479.                 can pick 2,4,8,16,32,64 as the fatbits size.
  480.                 The size of the total fatbits box can't be 
  481.                 changed.  This changes the size of the blown
  482.                 up pixels within the box.  Also applies to
  483.                     the RealTime fatbits.
  484.         * grid        turns off/on the fatbits grid
  485.         * antialias filter    when on, editing fatbits will try
  486.                 to smooth the selected pixel with it's 
  487.                 surrounding pixels (averages RGBs, then picks
  488.                 nearest color).  Doesn't work all that well.
  489.         * RealTime fatbits     Turns on/off the Tiga realtime 
  490.                 fatbits display.  This blows up the pixels
  491.                 under the cursor, every vertical retrace, 
  492.                 using the Tiga download interrupt extensions.
  493.                 for display only.
  494.                                 There is a rare bug which sometimes causes the 
  495.                                 board to crash.  I am working on this.
  496.         resize/move RealTime    lets you resize/move the realtime
  497.                 fatbits box.  See the edit box description
  498.                 below.
  499.         reset RealTime fatbits    resets the fatbits box to the upper
  500.                 left of the screen.
  501.  
  502.         Notes: the RealTime fatbits are for Tiga only.  It does not
  503.             save what is under the box (not yet...).  It respects
  504.             the fatbits size, but not the grid or antialias
  505.             features.
  506.  
  507.     
  508.                     
  509.     load:  - self explanatory.  Loads TGA, GIF, BMP, PCX, FNT, PAL
  510.         files, with the following restrictions:
  511.  
  512.                 GIF   - only 87a format, single images.
  513.                 TGA   - not known if SCEDIT supports Black&White format
  514.             (no test images).  Minor glitches have been reported
  515.                         with type 10 RLE true-color images, but I have not 
  516.                         been able to replicate any of the problems. (problem
  517.                         was last 10-15 scanlines garbled...beats me!)
  518.                 PCX   - bugs with certain images - mostly 4 bit/pixel EGA.
  519.                         Can't deal with monochrome format.
  520.                 BMP   - uncompressed only, no OS/2 bitmaps (OS/Who?).
  521.         FNT   - Tiga only.  works Great.
  522.         PAL   - ascii palette list. first line is "PAL", second
  523.             line is # of colors, rest of lines are Red Green 
  524.             Blue values.
  525.         RAW   - SCEDIT format for a raw bitmap.  First word of
  526.             file is x size, second word is y size, subsequent
  527.             bytes are image data, row major format.  no palette 
  528.                         info included.
  529.                 FLI   - small format, Autodesk Animator.  No clipping, so
  530.                         the image box must be totally in the screen before
  531.                         starting the animation.  Hit -,+ to speed up and 
  532.                         slow down the animation.  Hit 0-9 for direct speed
  533.                         control (0 is fastest - no VSYNC waits at all).
  534.                         Hit any other key or a mouse button to abort.
  535.                 FLC,CEL - large format, Autodesk Animator Pro.  No clipping,
  536.                         so the image box must be totally in the screen before
  537.                         starting the animation.  Same control keys and exit
  538.             keys as FLI.  Does not take advantage of download
  539.             speed under Tiga - therefore it is somewhat slow, but
  540.             still ok to view the animation.  Vesa is rather 
  541.             zippy.
  542.             BUG: can't handle frames larger than 64K.  There is
  543.             one FLC, distributed with Animator Pro (unionsta.flc),
  544.             which starts off with a huge block.  SCEDIT will skip
  545.             blocks larger than 64K.  This results in a wierd
  546.             image, but is better than crashing!  See "Future
  547.             Support" below.
  548.                 VOC   - Sound Blaster files.  Plays the entire VOC file, 
  549.                         marching down through the blocks, if any.  Obeys
  550.                         repeat blocks, if any.  Hit a key to break out of 
  551.                         a repeat block or out of the entire file.  Does not
  552.                         handle marker blocks or silence blocks.  
  553.  
  554.                         Note: SCEDIT wants the Blaster to be at I/O 0x220, 
  555.                         interrupt #7 (all default settings).  If yours is 
  556.                         different, envoke SCEDIT with the -s switch:
  557.                                 SCEDIT -sXXX,I
  558.                         where XXX is the I/O address in hex, and I is the
  559.                         interrupt number in hex.  For example to use a 
  560.                         Blaster at I/O 0x210, int 5:
  561.                                 SCEDIT -s210,5
  562.  
  563.                         If no Blaster is found, it simply won't
  564.                         play the file.  Want to support PC speaker but can't
  565.                         figure out how to convert VOC amplitude modulation
  566.                         to PC speaker frequency modulation.
  567.                 MMF   - my very own "MultiMedia File" format.  Use to play
  568.                         back an animation (FLI,FLC,CEL) with a VOC sound file,
  569.             with optional synchronization!  Ascii script file: first
  570.                         line is animation file, second line is .VOC file.  If
  571.             file ends there, then the sound is looped forever as 
  572.             the animation runs.  Optionally, there can be a list
  573.             of numbers, two per line, such as this:
  574.                                 1 2
  575.                                 5 3
  576.                                 .
  577.                                 .
  578.                                 .
  579.                         where the first number is the animation frame number,
  580.             the second number is the VOC block number.  In this 
  581.             example, sound block 2 would be synchronized to 
  582.             animation frame 1.  Then sound block 3 would be 
  583.             synchronized to animaton frame 5.  
  584.             *** See included BART.MMF for an example ***
  585.  
  586.                         To synchronize start of animation with start of the
  587.             sound always:
  588.                                 0 0
  589.  
  590.                         I realize this is a crummy way to provide this 
  591.                         capability, but it does work.
  592.  
  593.                         To construct an MMF file, you need to know the frame/
  594.                         block numbers of importance.  You can use the "single
  595.                         step" mode, in the state submenu, to step through both
  596.             animation files and VOCs.  As it single steps, the 
  597.             current frame/block number will be displayed in the 
  598.             upper left corner of the screen.
  599.                         
  600.                         This works but perhaps I should write an "authoring" 
  601.                         utility to do all of this...
  602.  
  603.  
  604.  
  605.     save:  - self explanatory.  Saves GIF, RAW, PAL files.
  606.         You must have a box marked to save an image.
  607.  
  608.         GIF   - non-interlaced format only.
  609.         PAL   - same as above.
  610.         RAW   - same as above.
  611.  
  612.  
  613.  
  614.     edit box - all things that have an "edit box" entry use the same
  615.         routine.  When you pick edit box, the box will be displayed
  616.         with 9 "handles".  There is one at each corner, one at
  617.         each edge midpoint, and one in the center.  Move the cursor
  618.         to the handle you wish to grab, and hold the left button down
  619.         while you drag.  Repeat until box is the size and position
  620.         that you want.  The center handle moves the box, the other
  621.         handles resize the box.  Then click on the right button to
  622.         indicate you are done.  
  623.  
  624.  
  625.     Notes:
  626.         Most of this stuff works in 16/24 bit modes.  The exceptions
  627. are the fatbits, palette editing, and palette menu functions.
  628.  
  629.  
  630.  
  631.     
  632.     Configuration File
  633.         -----------------------------------------
  634.  
  635.     In Tiga, SCEDIT creates a configuration file which lists all of
  636. the Tiga modes.  The first time this may take a moment or two.  Subsequent
  637. executions of SCEDIT use this file to get the default font, default palette,
  638. and the available modes.  The file is SCEDIT.CFG and will be in the
  639. same directory as SCEDIT.EXE (SCEDIT looks at the execution string at the
  640. end of it's PSP to determine this -- DOS 5.0 should work...I have used it 
  641. with DOS 3.3 and DOS 4.01).
  642.  
  643. There is an example configuration file:
  644.  
  645. SCEDIT v1.0
  646. device TIGA
  647. font none
  648. palette none
  649. reserved *** this line is RESERVED! ***
  650. current mode 0
  651. number of modes 5
  652. mode 1024 768 8 8192 8 1
  653. mode 1024 384 8 8192 8 1
  654. mode 800 600 8 8192 8 1
  655. mode 640 480 8 8192 8 1
  656. mode 512 480 32 16384 8 1
  657.  
  658.     SCEDIT's parser is really stupid -- everything must be in the exact 
  659. place. If you want to add a default Tiga font, replace the font line with:
  660.  
  661. font <drive:path\fontfile.fnt>
  662.  
  663. with exactly 1 space between the font and drive/path.  This font will be
  664. loaded when SCEDIT starts up and after each mode switch.  The Tiga font
  665. austin20.fnt is a cool font.
  666.  
  667.     The same goes for the palette line.  The palette file is a standard 
  668. SCEDIT .PAL file.
  669.  
  670.     If you switch Tiga boards (which have different modes, etc), you 
  671. will want to either delete the old config file, or use the -n flag:
  672.     SCEDIT -n
  673. which will force a configuration rebuild.
  674.  
  675.     In VESA, SCEDIT will ignore the configuration file.  It will not 
  676. check for one, read one, or write one out.  This makes it relatively easy
  677. to switch back and forth between Vesa and Tiga.
  678.  
  679.  
  680.  
  681.         
  682.         Limitations and Known Bugs
  683.         -----------------------------------------
  684.  
  685.         The input fields in the Load menu will overflow if too many
  686. characters are entered.
  687.  
  688.     There are *still* some cursor bugs under Vesa.  I have fixed quite
  689. a few since scedit version 1.0.
  690.  
  691.     The fatbits, when used with a size of 2 or 4, will sometimes
  692. screw up.
  693.  
  694.     The connected line, cline, does not work correctly.  The next to
  695. last line segment is not drawn.        
  696.  
  697.     Sometimes, after a lengthy session, you can't display a FLI file
  698. (due to a memory allocation failure).  I have noticed this if you use the
  699. poly marking/manipulation feature.  Working on this.
  700.  
  701.     FLI,FLC - SCEDIT can deal with probably 99% of these files, but there
  702. are some that it has trouble with.  This is due to lack of a complete spec.
  703.  
  704.  
  705.  
  706.         Future Support
  707.         -----------------------------------------
  708.  
  709.         The input field overflow problem in the Load menu will be fixed.
  710.     
  711.     Cursor bugs will be fixed.  Yes, there still are some...arrgghhh.
  712.  
  713.         The following file formats will have the following enhancements:
  714.                 GIF   - 89 format, multiple images, etc.
  715.                 FLC   - frames larger than 64K will be handled (somehow...).
  716.             Also, Tiga download code for FLCs will be implemented.
  717.             I am kind of waiting for FLCs to become more popular,
  718.             now that Autodesk Animator Pro has been released.
  719.             However, I question its potential popularity given
  720.             its relatively high price tag...
  721.                 TGA   - Black&White, if I can find a test image...
  722.                 BMP   - compressed format.  No plans for OS/Who? format.
  723.                 PCX   - monochrome format.
  724.         FNT   - for Vesa.  I have this code ready to roll.
  725.  
  726.         I hear the distant baying of TIF supporters.  It would be a 
  727. tremendous task to write a TIF decoder which could handle all the TIF 
  728. formats, but I am considering adding support for the commonest formats.
  729. The main obstacle is the lack of a copy of the TIF spec.
  730.  
  731.     Better Tseng detection.
  732.  
  733.     Flesh out the drawing functions for Vesa (circles, etc).
  734.  
  735.     Some of the functions in SCEDIT will probably be removed or
  736. drastically altered.  I am not happy with the save screen, restore screen,
  737. push box, pop box, push poly, pop poly features.  I might axe them.  I 
  738. might rewrite to eliminate the stack metaphor, perhaps moving away from
  739. expanded memory, perhaps using the hard drive for storage.  Who knows - 
  740. certainly not me!  I think the drawing functions are quite primitive and
  741. are really useless for anything other than hacking around, but after all
  742. SCEDIT is not a paint program.
  743.  
  744.     Eliminate the need for expanded memory, at least under Vesa.  On
  745. 1Mb VGAs there is a fair amount of non-displayed memory to use instead of
  746. using expanded memory.
  747.  
  748.  
  749.  
  750.  
  751.  
  752.     Cool Things
  753.         -----------------------------------------
  754.  
  755.     As always, I am on the hunt for the following devices -
  756.             these should work with v1.0 SCEDIT:
  757.         * 1280x1024x256color Vesa VGA (packed pixel), 
  758.         * 1024x768 16bit HiColor Vesa VGA (Yeah!),
  759.         * 1024x768 16bit or 24bit Tiga (Yeah! Preferrably a 34020!),
  760.  
  761.              will not work with v1.0, but I am curious:
  762.         * any Vesa VGAs with non-chain 4 modes.  Non-chain 4 is why
  763.               SCEDIT is so fast on Tseng ET4000 based boards.  Although
  764.                   the Vesa spec allows for "non-chain 4" video modes, SCEDIT
  765.           currently ignores any non-chain 4 VESA mode.  It selectively
  766.           uses non-chain 4, for rectangles only. In my experience, non-
  767.           chain 4 mode, in high resolution modes (>64K), works only on 
  768.           a Tseng ET4000.  Video Seven and ATI both fail (others may
  769.           too - I have tested just these).  This is understandable, 
  770.                   as non-chain 4 seems to be directly descended from the old 
  771.            EGA 16 color planar architecture, with its 64K memory
  772.                   limitation.   Non-chain 4 lets you write 4 8-bit pixels
  773.           at once.  The Great Clone Maker, whose name begins with
  774.            a 'c' and ends with a 'q', from the Lone Star state,  has
  775.           advertized their new accelerated VGA (goes up to 640x480x
  776.           256 colors - boy they're really out on a limb this time...
  777.           yah...) as having both packed pixel and "multiple plane" 
  778.           modes.  I suspect that the multiple plane modes are really 
  779.           nothing more than non-chain 4 in disguise, but who knows.  
  780.           I digress.  Anyhow, Bravo Tseng!  
  781.  
  782.  
  783.     Changes from Version 1.0 (to Version 1.1)
  784.         -----------------------------------------
  785.         This is a running tally of changes - information under later dates
  786.         can, and might, superceed information under more recent dates.
  787.     
  788.     8/3/91:    
  789.       Sound Blaster files, .VOC, can now be played - if you have a 
  790.       Sound Blaster card!  It can deal with all the compression types, 
  791.       and most of the block types.  It does not currently handle silence
  792.           blocks.  It ignores marker blocks.  It obeys repeat blocks - but
  793.       only deals with "endless" repeats - no count is obeyed.  Will
  794.           loop forever, until a key is hit or the mouse button is held down
  795.           long enough (to trigger my polling loop).  If you trigger a break,
  796.       either with the keyboard or mouse, and you are in a repeat block,
  797.           it will break out of the repeat block and continue processing the
  798.           rest of the file.  If you are not in a repeat block, it will break 
  799.       out of the entire file. 
  800.       Want to eventually sychronize sound playback with FLI animations.
  801.  
  802.     8/3/91:    
  803.       The problem with saving multiple GIF files has now been fixed.  
  804.       You can now mark and save as many as you wish, without SCEDIT 
  805.           screwing up.
  806.  
  807.     8/3/91:    
  808.       SCEDIT EXE size is down to about 309K, from 409K.  Malloc'ed a 
  809.       bunch of stuff, mostly with the gif save routine.  Removed the
  810.           24 bit seed fill (didn't work very well anyway - besides what good
  811.           is a plain non-gradient seed fill on a card that can display 16.7
  812.           million colors?!?  SCEDIT is hopelessly palette, 256 color, bound).
  813.           Removing that feature saved a tad more than 64K.  I had a huge
  814.           (64K) seed fill stack statically allocated.
  815.  
  816.     8/5/91:    
  817.       Can now play .FLI files, with all graphics devices (both Tiga and
  818.           Vesa).   Under Tiga it is a little slow - working on this.  Under
  819.           Vesa it is just barely acceptable on my machine (ancient clone
  820.           386/20, slow 41256 DRAMs, MFM AT hard disk).  I suspect a modern
  821.       386 or 486 would be quite zippy.
  822.       FLI playback works only for 8 bit/pixel video modes.
  823.  
  824.     8/5/91:    
  825.       New drawing primitives - "flip box" and "reverse box", under the 
  826.           effects menu (main->draw->effects->).  Both are similar to the
  827.           rectangle primitive; i.e. both use a rubber banding rectangle. Once
  828.       the rectangle is selected, "flip" flips the pixels within the
  829.           rectangle from top to bottom, and "reverse" flips the pixels within
  830.           the rectangle left to right.  Works in all pixel depths.
  831.  
  832.         8/18/91:
  833.           Coded Vesa FLI stuff in assembler - helps a bit (I estimate
  834.           20-30% faster).
  835.           Finally combined animations with sound.  Uses a .MMF (MultiMedia
  836.           File format - my own design) file.  The MMF file format is 
  837.           essentially an ascii script:
  838.                 <.fli file with pathname>
  839.                 <.voc file with pathname>
  840.                 <fli frame #> <sound block #>
  841.                 <fli frame #> <sound block #>
  842.                         .
  843.                         .
  844.                         .
  845.  
  846.           It is rather crude, but it works great!  Disk cache is 
  847.           recommended...
  848.       
  849.         8/19/91:
  850.           Finally added tiga downloaded code for FLI displays.  Not 
  851.           concurrent, but still pretty fast.  The tiga mode in use needs
  852.           64K available, accessed via gsp_malloc().  If there is not
  853.           enough memory, it will not try to download the frames - it will 
  854.           use the slower, host bound method instead.
  855.  
  856.  
  857.  
  858.     Summary of Changes from version 1.0 to 1.1
  859.     --------------------------------------
  860.     * Fixed a bug with saving multiple GIF images.
  861.     * PCX files display better.
  862.     * VOC file playback.
  863.     * FLI, FLC, CEL file display.
  864.     * Shrunk SCEDIT.  Down from about 420K to about 308K.
  865.     * MMF - (FLI/FLC/CEL)/VOC "multimedia" capability - Really Cool.
  866.     * New drawing commands:
  867.         - flip, reverse, brightness, text.
  868.     * Better Palette Edit menu:
  869.         - smaller, now has a rectangle at top to show current color.
  870.         - makes it VERY useful for true-color drawing - you can
  871.           interactively change the current color to whatever RGB you
  872.           want.  As you change it the RGB is displayed in the top
  873.           rectangle.
  874.         - Bad Point:  under Tiga with a big font (above 25 pts, say),
  875.           the text is a bit misadjusted.  Still works fine, and the
  876.                   smaller size makes it much faster.
  877.     * Redid much memory management:
  878.         - Found a MAJOR bug with TGA/GIF/PCX/BMP displaying with
  879.           the Vesa/Sierra 16 bit/pixel mode - memory overwrites.
  880.     * Fixed bug with Tseng/Sierra 16-bit/pixel colors.    
  881.     * I *think* I have eliminated the nasty "Out of Memory" error that
  882.       sometimes (rarely) occurs after exiting SCEDIT.  
  883.           SCEDIT allocates/frees large chunks of memory like there is no 
  884.       Tomorrow.  For all I know this could be a bizarre DOS 3.31 or MSC 
  885.       5.1 bug... I remain optimistic but baffled...
  886.  
  887.     
  888.  
  889.  
  890.     Disclaimer
  891.     --------------------------------------
  892.     SCEDIT is freeware.  You are granted the right to use SCEDIT for as
  893. long as you like, provided it is not used for commercial purposes or for any
  894. profit.  SCEDIT may be freely copied and distributed but may not be sold.
  895. You may not reverse-engineer, disassemble, modify, alter, rename, contaminate
  896. with a virus, or otherwise muck with SCEDIT.  Just use it.
  897.  
  898.     SCEDIT is distributed without warranties of any kind, either expressed
  899. or implied, including but not limited to implied warranties of merchantability
  900. and fitness for a particular purpose.
  901.  
  902.     In no event shall I, George Christopher Thomas, be liable for any 
  903. errors contained herein or for incidental or consequential damages in 
  904. connection with the furnishing, performance, or use of the SCEDIT product or 
  905. documentation.
  906.  
  907. Nasty copyright stuff:
  908. 'GIF' and 'Graphics Interchange Format' are trademarks of CompuServe
  909. Incorporated, an H&R Block company.
  910. 'Sound Blaster' is a trademark of Creative Labs Inc. and Creative Technology
  911. Pte Ltd.
  912. 'Tiga' is a trademark of Texas Instruments, Inc.
  913.  
  914. I hope that appeases Lots of Litigatious Leacherous Lawyers.
  915.  
  916.  
  917.  
  918.     Epilogue
  919.     --------------------------------------
  920.  
  921.     Trademarks are property of their respective companies.  This
  922. document is by no means intended as a brand or product endorsement.
  923.  
  924.     Many thanks to Tom Haviland for his exhaustive testing of SCEDIT
  925. with the Hercules Graphics Station card.
  926.  
  927.     I am not charging for this utility.  Feel free to distribute it,
  928. provided it is distributed intact, as SCEDIT10.ZIP:
  929.         scedit.exe
  930.         scedit.doc
  931.         tigafbit.rlm
  932.         bart!!.fli
  933.         bart.voc
  934.         bart.mmf
  935.         If you do upload SCEDIT11.ZIP somewhere, this is what the description 
  936. should say: "File Viewer, TGA/GIF/PCX/BMP/FLI/FLC/VOC, Tiga/Vesa SVGA".
  937. And if there is room for a longer description, add "Includes a FLI/VOC
  938. multimedia example".
  939.  
  940.         Note that the distribution name is SCEDITxx.ZIP, where xx is the
  941. version number (i.e.,  10 for version 1.0,  11 for version 1.1, etc...)
  942.  
  943.  
  944.     If you really like the program,  you might consider sending me
  945. a few bucks to support further development and bug fixes.  Donators will,
  946. of course, receive the latest version.
  947.  
  948.     Lastly, let me know if you have a Tseng HiColor VGA which is not
  949. detected correctly (my bios "Tseng" search may let a few implementations
  950. fall through the cracks...).
  951.  
  952.     Send bug reports, suggestions, etc, to (at least until Mar 1992):
  953.         G. Chris Thomas
  954.         221 Pine St, Apt 3
  955.         Burlington, VT 05401
  956.  
  957.     I hope you find this utility a useful one.
  958.     
  959.